1. Technical Field
The present invention relates to natural language command systems, and more specifically, to natural language command systems that interface with multiple back-end applications.
2. Related Art
The ability to provide efficient mechanisms for interfacing with today""s electronic commerce environment remains an ongoing challenge. A fundamental problem is that, in any given field, there exist numerous potential resources capable of servicing an end user""s needs. Depending upon the situation, certain resources may be more effective or cost efficient than others. Deciding which resource to utilize and providing the systems to interface with multiple resources can become unmanageable in an ever changing electronic environment. When dealing with multiple resources, it is not unusual to be confronted with a lack of uniformity among service providers. Thus, for a given service, providers will often employ proprietary or independent systems that utilize their own formats or syntax for receiving and/or distributing information. This often results in a situation where an end-user begins to favor a resource that they are comfortable with or knowledgeable about. However, there is no guarantee that a chosen resource will provide the best response to a given query or instruction, since better suited resources may exist.
One exemplary field where the aforementioned problems are prevalent involves computer reservation systems (CRS). Travel agents use CRS to make reservations with airlines, hotels, car rental agencies, bus lines, and railroads. For example, a travel agent may want to know what the available flights are from Miami to Boston on a given date. Examples of CRS""s include SABRE(trademark), SYSTEM ONE(trademark), APOLLO(trademark), AMADEUS(trademark) and WORLDSPAN(trademark). Unfortunately, code language formats, which are a combination of cryptic codes and characters, vary widely between each CRS even though a typical request is simple and common regardless of the CRS being used.
Because different computer reservation systems utilize different code language formats, a travel agent needs to learn a number of different code languages if that agent desires to interact with more than one CRS. Learning each new CRS""s code language costs the travel agency additional time and money. Moreover, a travel agent can easily become confused when interacting with one of the computer reservation systems because of the variation in code words. As a result, a travel agent may erroneously enter a code for one CRS while attempting to interact with a second CRS. Such mistakes decrease the travel agent""s efficiency in serving customers.
U.S. Pat. No. 5,781,892, METHOD AND APPARATUS FOR INTERACTING WITH A COMPUTER RESERVATION SYSTEM, issued to Hunt et. al, on Jul. 14, 1998, hereby incorporated by reference, describes a CRS that uses an application program interface to convert the cryptic CRS codes into a single user friendly language. While this is helpful to some extent, the end-user must still learn to interact with the system in a defined syntax. U.S. Pat. No. 5,842,176, METHOD AND APPARATUS FOR INTERACTING WITH A COMPUTER RESERVATION SYSTEM, issued to Hunt et. al, on Nov. 24, 1998, hereby incorporated by reference, describes a system for allowing multiple sessions to be established with a single CRS. This invention does not help identify the best CRS for a given query. Moreover, while it is possible to manually query multiple CRS""s, the cost and time associated with multiple queries can become prohibitive, because each query into a CRS has an associated cost.
A further problem not adequately solved by the prior is that an end-user often must submit a series of queries into a CRS to obtain the exact information required. For example, an end-user might first query for flights between Boston and Miami on a given date. If an adequate flight does not exist, the end-user may have to query for a flight on a different day, or query for a flight to a nearby airport. This series of queries can continue indefinitely until an adequate flight is located, at which time the end-user might book the flight. Accordingly, given the described problems in submitting queries, there exists a tremendous burden involved in re-entering the same set of information over and over again, with only minor variations. U.S. Pat. No. 5,832,454, RESERVATION SOFTWARE EMPLOYING MULTIPLE VIRTUAL AGENTS, issued to Jafri et al., on Nov. 3, 1998, hereby incorporated by reference, attempts to address the above problem by using embedded rules to generate xe2x80x9cnear-immediatexe2x80x9d results to provide multiple priced itineraries. While this teaching may be helpful in certain limited circumstances, it often will merely generate unwanted information, and do nothing to limit the data entry required for refining an end-user query.
Accordingly, a need exists to provide a comprehensive system that comprises a uniform and easy-to-use interface that can communicate with multiple resources, a system for effectively selecting from the multiple resources, and a system that will allow users to easily modify and refine requests during a series of related queries.
The present invention addresses the above-mentioned problems by providing a system and method that allows requests to be serviced by one or more resources, or hosts. The system utilizes a program product with a natural language (NL) user interface, wherein the computer program comprises: (1) an input system for inputting an NL command; (2) a translation system that extracts a request from the NL command and stores the request in a host-independent format; and (3) a routing system for servicing the request, wherein the routing system comprises a mechanism for selecting a host, for converting the request into a host dependent directive, and for forwarding the directive to the selected host. The system may further include a speech recognition system, a local data source for servicing the NL command, templates for converting the request into the host dependent directive, a heuristic for selecting the host, and an output system for obtaining and outputting intelligent natural language responses.
In addition, the invention may comprise a context mechanism to interpret natural language instructions, wherein the context mechanism comprises: (1) a context database that stores responses obtained in response to previous requests, wherein each response comprises response elements; (2) a context requirement mechanism that determines if a current request comprising a current set of request elements is ambiguous; (3) a context retrieving mechanism that retrieves response elements from the context database; and (4) a disambiguation mechanism that uses the retrieved response elements to disambiguate the current set of request elements. In addition, the context mechanism can also store request elements and use the previous request elements to disambiguate the current set of request elements. The context mechanism can be in the form of a system or program product.
It is therefore an advantage of the present invention to provide a system for interfacing with a plurality of hosts using a natural language interface.
It is therefore a further advantage of the present invention to provide a host-independent format for storing requests.
It is therefore a further advantage of the present invention to provide format templates for converting host-independent requests into host-dependent directives.
It is therefore a further advantage of the present invention to provide a heuristic for selecting the host.
It is therefore a further advantage of the present invention to provide a context mechanism that allows an end-user to submit a series of related commands without having to resubmit each command in its entirety.
It is therefore a further advantage of the present invention to provide intelligent responses to the end-user.
These and other advantages will be described in more detail in reference to the drawings and detailed description provided below.